草庐IT

mysqldump : Got error: 1449:

全部标签

mysql - '未知变量 "character-set-server=utf-8"' mysqldump 错误

我在SMPDebianLinux3.2.60上使用mysql5.5.38。它工作正常,但我无法进行任何备份。mysqldump总是显示“未知变量“character-set-server=utf-8””错误。即$mysqldump--versionunknownvariable"character-set-server=utf-8"有没有办法在my.cnf或其他任何方式中修复它? 最佳答案 根据文档https://dev.mysql.com/doc/refman/5.5/en/charset-applications.html,[m

mysql - 从 mysqldump 中检索最后 N 行

我正在使用以下命令从每个数据库的每一列中转储100行。问题是它返回前100条记录,而我更希望返回最后。我找到了一个标志,可以让我按主键排序(--order-by-primary),但它仍然返回错误的行。我会尝试将“orderby”偷偷放入下面的where标志中,但每个表的主键都不同。mysqldump-uusername-p--where="truelimit100"--all-databases>dump.sql有没有办法在抓取最后100条记录之前颠倒顺序,或者可能是一种引用PK而不是PK的列名称的方法? 最佳答案 我认为只要您不

mysqldump 在备份时跳过一些表

我正在尝试完全转储我的数据库。在进行转储时,mysqldump会跳过一些表,尤其是那些带有外键的表。并不是每个带有外键的表都被跳过。只有一些特定的表!我尝试了-f开关。它迫使它包含几张表,但仍有两张表被跳过。这正常吗?我的意思是,这会发生吗?我的模式有问题吗?如何解决? 最佳答案 引用@Nikhil对McAfee的评论。我遇到了这样一种情况,McAfee试图读取(并因此阻止)当查询从内存移动到临时文件时MySQL创建的临时文件。我们必须创建一个特定的规则来阻止McAfee尝试扫描临时文件,这样MySQL就不会出现问题。在这种情况下,

ssh - 通过 SSH 隧道的 mysqldump

我的服务器设置如下:webserver(网关机器,可通过SSH从Internet访问)dbserver(数据库服务器,无法从网络访问)我的目标是使用mysqldump通过网络将备份从dbserver拉到我的笔记本电脑。到目前为止,问题是thisquestion的副本。,exceptwebservernot安装了mysqldump,而且我没有安装它的权限。因此,我试图在我的笔记本电脑上使用mysqldump从我没有SSH权限的网关后面的服务器中提取数据。在讨论之后here和here,我正在尝试做这样的事情来建立隧道:ssh-f-L3306:dbserver:3306user@webser

mysql - 在 bash 脚本中使用带有 where 选项和长参数列表的 mysqldump

我正在尝试使用mysqldump在MySQL中转储表的子集。我有我想从表中选择的行的id值,存储在一个文件中。当我将这些值用作变量时,如下所示:ids=`catids.csv`mysqldump-uroot-pdbTable--where="idin($ids)">>dump.sql我得到:x.bash:linex:/usr/bin/mysqldump:Argumentlisttoolong我可能会尝试将单行变量$ids(1,2,3,4,..)分成较短的列表并在循环中调用mysqldump但我目前不太擅长bash脚本中的循环。或者可能有更好的方法来解决这个问题。在此先感谢您的帮助。编辑

mysqldump 不导出数据或结构

我有一个简短的PHP脚本,它应该执行MySQL备份并通过电子邮件发送给我。然而,数据和结构都不是由mysqldump写入的。调用mysqldump的命令如下所示:mysqldump--host=localhost--user=xxx--pass=xxxxxx_license>xxx2012-12-28.sql(xxx用户名和密码与另一个使用php和数据库的脚本相同,所以我知道凭据是正确的)。输出如下:--MySQLdump10.13Distrib5.5.28,forLinux(x86_64)----Host:localhostDatabase:xxx_license----------

mysql - mysqldump 是如何工作的?

我有一个使用mysql作为后端的java应用程序,每天晚上我们使用mysqldump备份mysql并且应用程序在那个时间段(应用程序20分钟)停止工作。用于备份的命令。$MYSQLDUMP-h$HOST--user=$USER--password=$PASS$database>\$BACKDIR/$SERVER-mysqlbackup-$database-$DATE.sqlgzip-f-9$BACKDIR/$SERVER-mysqlbackup-$database-$DATE.sql这是正常现象还是我做错了什么导致数据库在那段时间停止?谢谢,K 最佳答案

mysql - 如何使用 mysqldump 保存 UTF8mb4 数据?

我正在使用mysqldump转储包含UTF8MB4列和UTF8MB4数据的数据库。当我将此.sql文件导入支持UTF8MB4的新数据库时,所有UTF8MB4字符都被转换为????。有人知道如何使用UTF8MB4使MySQL和导入工作吗? 最佳答案 使用mysqldump时,您应该使用--default-character-set=utf8mb4选项指定字符集。$mysqldump--default-character-set=utf8mb4-uusername-pdatabase>dump.sql

mysqldump 使用数据库名称完全限定触发器

我正在尝试使用mysqldump导出需要使用不同数据库名称导入的数据库。查看mysqldump生成的SQL,触发器似乎是唯一与源数据库名称完全限定的对象名称,因此满足了我的需求。无论如何,有没有指示mysqldump不完全限定任何对象名称,包括触发器? 最佳答案 我遇到了同样的问题,我找到了解决方案。我使用MySQLWorkbench设计我的数据库,并在那里创建了一些触发器。他们都使用语法CREATETRIGGERtrigger_name除了一个:CREATETRIGGERdbname.trigger_name(这只是我的错误)。M

mysqldump 限制之间的记录

mysqldump--opt--where="trueLIMIT100"dbname>dbname.sql但是如果我想要第2000行到第3000行的记录怎么办?像一般的sql一样,我们可以使用LIMIT2000、3000;但是mysqldump是否有类似的替代方案? 最佳答案 有--where好像是sql注入(inject)提示,然而方便mysqldump--opt--where="1ORDERBYidLIMIT2000,1000"dbname>dbname.sql 关于mysqldum